package com.anjiplus.template.gaea.generator.service;

import java.io.IOException;
import java.util.List;
import java.util.Map;

import com.anjiplus.template.gaea.generator.domain.Column;
import com.anjiplus.template.gaea.generator.domain.GenConfig;

/**
 * 代码生成服务，业务系统可扩展自定义生成逻辑
 *
 * @author WongBin
 * @date 2021/4/29
 */
public interface GeneratorUtilService {
    /***
     * 预览代码
     * @param columns
     * @param genConfig
     * @return
     */
    List<Map<String, Object>> preview(List<Column> columns, GenConfig genConfig);

    /***
     * 生成代码
     * @param columnInfos
     * @param genConfig
     * @throws IOException
     */
    void generatorCode(List<Column> columnInfos, GenConfig genConfig) throws IOException;

    /***
     * 下载代码
     * @param columns
     * @param genConfig
     * @return
     * @throws IOException
     */
    String download(List<Column> columns, GenConfig genConfig) throws IOException;
}
